package heap

type MethodDescriptor struct {
	ParameterTypes []string
	ReturnType     string
}

/*
解析方法中一个参数的类型
 */
func (self *MethodDescriptor) pushParameterType(t string) {
	pLen := len(self.ParameterTypes)
	// cap()函数返回的是数组切片分配的空间大小
	if pLen == cap(self.ParameterTypes) {

		// 第二参数指定的是切片的长度，第三个参数是用来指定预留的空间长度
		s := make([]string, pLen, pLen + 4)

		// copy复制会比等号复制慢。但是copy复制为值复制，改变原切片的值不会影响新切片。
		copy(s, self.ParameterTypes)
		self.ParameterTypes = s
	}

	self.ParameterTypes = append(self.ParameterTypes, t)
}

